<?php
/**
 * tpAdmin [a web admin based ThinkPHP5]
 *
 * @author yuan1994 <tianpian0805@gmail.com>
 * @link http://tpadmin.yuan1994.com/
 * @copyright 2016 yuan1994 all rights reserved.
 * @license http://www.apache.org/licenses/LICENSE-2.0
 */

//------------------------
// 案例类型列表
//-------------------------

namespace app\admin\controller;

use app\admin\Controller;
use think\Db;
use think\Lang;
use think\Loader;
use think\Exception;

class ProjectCaseType extends Controller
{
    use \app\admin\traits\controller\Controller;

    /**
     * 列表
     */
    public function index()
    {
        $model = $this->getModel('project_case_type');
        $map = array();
        // id
        if ($this->request->param('id')) $map['n.id'] = ['eq',   $this->request->param('id')  ];
        // 标题
        if ($this->request->param('title')) $map['n.title'] = ['eq',   $this->request->param('title')  ];
        // 查询字段
        $listRows = 20;
        $map['isdelete'] = 0;
        // 分页查询
        $list = $model->alias('n')
            ->where($map)->order('  id desc')->paginate($listRows, false, ['query' => $this->request->get()]);

        // 模板赋值显示
        $this->view->assign('list', $list);
        $this->view->assign("page", $list->render());
        $this->view->assign("count", $list->total());
        $this->view->assign('numPerPage', $listRows);

        return $this->view->fetch();
    }

    /**
     * 编辑
     * @return mixed
     */
    public function edit()
    {
        $controller = $this->request->controller();
        $module = $this->request->module();

        if ($this->request->isAjax()) {
            // 更新
            $data = $this->request->post();
            if (!$data['id']) {
                return ajax_return_adv_error("缺少参数ID");
            }
            
            
            // 验证
            if (class_exists(Loader::parseClass($module, 'validate', $controller))) {
                $validate = Loader::validate($controller);
                if (!$validate->check($data)) {
                    return ajax_return_adv_error($validate->getError());
                }
            }
            // 更新数据
            Db::startTrans();
            try {
                $data['addtime'] = time();
                Db::table("tp_project_case_type")->where(" id = ".$data['id'])->update($data);
                // 提交事务
                Db::commit();

                return ajax_return_adv("编辑成功");
            } catch (\Exception $e) {
                // 回滚事务
                Db::rollback();

                return ajax_return_adv_error($e->getMessage());
            }
        } else {
            // 编辑
            $id = $rId = $this->request->param('id');
            if (!$id) {
                throw new Exception("缺少参数ID");
            }
            $vo = $this->getModel($controller)->find($rId);
            if (!$vo) {
                throw new HttpException(404, '该记录不存在');
            }
            $this->view->assign("vo", $vo);

            return $this->view->fetch();
        }
    }
}